package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.system.entity.AttendEmployeeMonth;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendEmployeeMonthParam;
import cn.stylefeng.guns.sys.modular.system.entity.AttendAuditBtyArchives;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyArchivesParam;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyArchivesCountShop;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyArchivesResult;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditManagerSetResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wjk
 * @since 2021-09-15
 */
public interface AttendAuditBtyArchivesMapper extends BaseMapper<AttendAuditBtyArchives> {

    /**
     * 获取对应手机号人员标识
     *
     */
    List<Long> archivesIdList(@Param("tel") String tel);


    /**
     * 根据人员标识更新手机号
     *
     */
    void updateArchivesTel(@Param("oldTels") String oldTels,@Param("tel") String tel,@Param("archivesId") Long archivesId);

    /**
     * 获取列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<AttendAuditBtyArchivesResult> customList(@Param("paramCondition") AttendAuditBtyArchivesParam paramCondition);

    /**
     * 获取map列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") AttendAuditBtyArchivesParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    Page<AttendAuditBtyArchivesResult> customPageList(@Param("page") Page page, @Param("paramCondition") AttendAuditBtyArchivesParam paramCondition);

    /**
     * 获取分页map列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") AttendAuditBtyArchivesParam paramCondition);


    /**
     * 获取列表(这是为了同步相应月份的数据，获取当月的员工档案数据)
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<AttendEmployeeMonth> getAttendEmployeeMonthBaseList(@Param("paramCondition") AttendEmployeeMonthParam paramCondition);

    /**
     * 根据督导的手机号码，返回督导的手机号，职位，所拥有的店的汇总；
     * @author wjk
     * @Date 2021-09-16
     */

    AttendAuditBtyArchivesCountShop getShopCountShopByDdPhone(String account);
    /**
     * 根据大店长的手机号码，返回大店长的手机号，职位，所拥有的店的汇总；
     * @author wjk
     * @Date 2021-10-18
     */
    AttendAuditBtyArchivesCountShop getShopCountShopByDdzPhone(String account);
    /**
     * 在员工表中将员工设置为店长
     *
     * @author wjk
     * @Date 2021-09-16
     */
    boolean setEmployeeToDz(@Param("paramCondition")AttendAuditBtyArchives attendAuditBtyArchives);

    /**
     * 根据运营经理名字和员工姓名查询运营经理下的员工信息
     * @param account
     * @param xm
     * @return
     */
    List<AttendAuditBtyArchives> getOperationsEmployeeList(@Param("account")String account,@Param("xm")String xm);

    /**
     * 根据运营经理名字和员工姓名查询运营经理下的员工信息，分页
     * @param account
     * @param xm
     * @return
     */
    IPage<AttendAuditBtyArchives> getOperationsEmployeeListPage(@Param("page") Page pageContext,@Param("account")String account, @Param("xm")String xm);
    /**
     *需要根据编号从人事中获取数据
     * @param attendEmployeeMonthOld
     * @return
     * @author wjk
     * @Date 2021-11-08
     */
    List<AttendEmployeeMonth> getAttendEmployeeMonthAuditBtyAreaServiceByBh(AttendEmployeeMonth attendEmployeeMonthOld);
    /**
     * 获取人事中最新的数据,根据店名或者编号列表
     * @param attendAuditManagerSetResultList
     * @param dm
     * @return
     * @author wjk
     * @Date 2021-11-09
     */
    List<AttendAuditBtyArchives> getBtyArchivesListByBhListOrDm(@Param("bhList") List<AttendAuditManagerSetResult> attendAuditManagerSetResultList,@Param("dm") String dm);

    /**
     * 查询银行卡是否有重复数据，若有重复数据， 取出重复数据的人员信息(非此员工)，
     * @param attendEmployeeMonthParam
     * @return
     * @author wjk
     * @Date 2021-12-17
     */
    List<AttendAuditBtyArchives> getListByYhk(@Param("paramCondition") AttendEmployeeMonthParam attendEmployeeMonthParam);

    /**
     * 根据编号查询离职人员信息表
     * @param attendAuditManagerSetResult
     * @return
     * @author wjk
     * @Date 2021-12-20
     */
    List<AttendAuditBtyArchives> getArchivesListByBh(@Param("paramCondition") AttendAuditManagerSetResult attendAuditManagerSetResult);
}
